Office Hours Topics
Advanced SQL Queries
- Left join, right join, inner join, outer join - what they mean and how to use them
- Window functions in SQL
- Recursive CTEs (what they are, when to use them)
- Programmatically counting rows and columns across tables
- Automating queries to clean up data
- Choosing between queries that give the same result - should we care about performance differences?
SQL Design & Best Practices
- Best practices for writing SQL (readability, maintainability)
- Stored procedures - what they are and when to use them
- User-defined functions (UDFs) - SQL vs PL/pgSQL, when to use each
- Querying database metadata (e.g. properties of tables, which has the most rows)
- The
information_schematable in databases - Why are there multiple SQL variants (Postgres, MySQL, SQLite, etc.)?
SQL Tooling & Workflows
- DBeaver tips and useful features
- Setting up and using connect.sh for database connections
Web & Networking Basics
- How HTTPS works (certificates, domains, SSL/TLS)
- Node.js - what it is and its role in web development
AI & Future of Work
- Coding workflows with AI (recommendations, pitfalls, examples)
- Predicted impact of AI on data analyst roles (tools vs replacement)
- What are AI agents and how do they differ from calling an LLM API?
- What happens under the hood when an LLM “hallucinates”?
- Semantic versioning
Data Processing in Python
- Converting PDFs into structured data (e.g. for maths exam papers)
- Working with audio files in Python (.mp3, .wav, processing libraries)